<HTML> 
<HEAD> 
	<TITLE>3rd Party ROBOTC Drivers</TITLE> 
<link href="tabs.css" rel="stylesheet" type="text/css"/> 
<link href="doxygen.css" rel="stylesheet" type="text/css"/> 
</HEAD> 
 
<BODY bgcolor="#ffffff" link="#000000" vlink="#000000"> 
<table width="100%" bgcolor="navy" cellspacing=0 cellpadding=1 border=0> 
<tr><td><table width="100%" bgcolor="#EEEEDD" cellspacing=0 cellpadding=3 border=0> 
<tr> 
    <td width="33%" align="left"> <img src="images/LOGO_NXT.gif" width=266 height=44 border="0" alt="Mindstorms"></td> 
    <td><b><font size="+3" color="navy">3rd Party ROBOTC Drivers</font></b></td> 
    <td align="right"> <img src="images/logo.png" width=44 height=44 border="0" alt="RobotC"></td>     
</tr> 
  <tr bgcolor="#cccc99" align="right"> 
          <td colspan=3> <font face="arial" size="-1"> [<a href=main.html>Home</a>] [<a target=_top href="https://sourceforge.net/projects/rdpartyrobotcdr/">Download</a>] [<a target=_top href="http://apps.sourceforge.net/mantisbt/rdpartyrobotcdr/my_view_page.php">Submit a bug/suggestion</a>]  [<a target=_top href="http://www.robotc.net/forums/">ROBOTC Forums</a>] [<a target=_top href="http://botbench.com">Blog</a>] [<a target=_top href="http://sourceforge.net/donate/index.php?group_id=257238">Support this project</a>]</font> </td> 
</tr> 
</table></td></tr> 
</table> 
<!-- Generated by Doxygen 1.7.2 -->
<div class="header">
  <div class="summary">
<a href="#files">Files</a> &#124;
<a href="#define-members">Defines</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<h1>NXT Motor MUX<br/>
<small>
[<a class="el" href="group__mindsensors.html">Mindsensors</a>]</small>
</h1>  </div>
</div>
<div class="contents">
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="files"></a>
Files</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="mindsensors-motormux_8h.html">mindsensors-motormux.h</a></td></tr>

<p><tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>Mindsensors Motor MUX driver. </p>
<br/></td></tr>
</p>
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga2bbcbdd8012e4a24c5e4215523042a42">MSMMUX_I2C_ADDR</a>&#160;&#160;&#160;0x06</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#gae48d4cff2c8ccdb011fa7b3aab523adf">MSMMUX_REG_CMD</a>&#160;&#160;&#160;0x41</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga8c8b3af6beb087e1fd05d397b9b1ace5">MSMMUX_MOT_OFFSET</a>&#160;&#160;&#160;0x42</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#gac650c60ed1552bdddb6c614558f9e5d0">MSMMUX_TARG_ENC</a>&#160;&#160;&#160;0x00</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga095db3c1ca34b9d4e0fe49afe8bbc29e">MSMMUX_POWER</a>&#160;&#160;&#160;0x04</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#gabee839cd65db79708af3e59d6c59d8dd">MSMMUX_TARG_TIME</a>&#160;&#160;&#160;0x05</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga5befe114da7506da601ab2e1915d068d">MSMMUX_CMD_B</a>&#160;&#160;&#160;0x06</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga0c726f775a3cd2d58bb52884974ae10a">MSMMUX_CMD_A</a>&#160;&#160;&#160;0x07</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga3b917057a8f3ac8adf27bd90187b70fe">MSMMUX_ENTRY_SIZE</a>&#160;&#160;&#160;0x08</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#gab490c7c21096313940d1d677e1f15d2b">MSMMUX_TACHO_MOT1</a>&#160;&#160;&#160;0x62</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga95108db52512c8783c4d75168a2fa5d6">MSMMUX_TACHO_MOT2</a>&#160;&#160;&#160;0x66</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#gab023b064da656ef35bdfb26a38c22a7f">MSMMUX_STATUS_MOT1</a>&#160;&#160;&#160;0x72</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga86a9d90e1c78977bf3ee5583207cf52e">MSMMUX_STATUS_MOT2</a>&#160;&#160;&#160;0x73</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga9be189f09f2e3f3416d7be23719df312">MSMMUX_KP_TACHO</a>&#160;&#160;&#160;0x7A</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga5f9f34c18af41d95b0e78c5fb600bec5">MSMMUX_KI_TACHO</a>&#160;&#160;&#160;0x7C</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga3ff39af77724326192176429074ceeff">MSMMUX_KD_TACHO</a>&#160;&#160;&#160;0x7E</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga688ad91d6a5f0ee13586e684e87ff694">MSMMUX_KP_SPEED</a>&#160;&#160;&#160;0x80</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga0cfed96ad8ef023bdaa88d7696b79f38">MSMMUX_KI_SPEED</a>&#160;&#160;&#160;0x82</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga5907ebc5382189cc9c06290a3b903fdb">MSMMUX_KD_SPEED</a>&#160;&#160;&#160;0x84</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga5094b753ed06a74097d1fc9d1abcbe9d">MSMMUX_PASSCOUNT</a>&#160;&#160;&#160;0x86</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#gad7ad488cba75aa97be2cc069cccf4bc9">MSMMUX_TOLERANCE</a>&#160;&#160;&#160;0x87</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#gab8f60d07e59fd28326a70237f040b5f9">MSMMUX_CMD_RESET_ALL</a>&#160;&#160;&#160;0x52</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga97d0c3949df27605f6513dc97ea4a849">MSMMUX_CMD_START_BOTH</a>&#160;&#160;&#160;0x53</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga1d305482996467216a57a6ea423120fa">MSMMUX_CMD_FLOAT_MOT1</a>&#160;&#160;&#160;0x61</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga73edefd7f959680dd295c60d4fefdf9c">MSMMUX_CMD_FLOAT_MOT2</a>&#160;&#160;&#160;0x62</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#gaf6be1bd3d07914c15eb391e03a1cb5f2">MSMMUX_CMD_FLOAT_BOTH</a>&#160;&#160;&#160;0x63</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga47a20b1c919909ae6a02143c9b38373e">MSMMUX_CMD_BRAKE_MOT1</a>&#160;&#160;&#160;0x41</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga3504e787d507d9728c02204693fa6feb">MSMMUX_CMD_BRAKE_MOT2</a>&#160;&#160;&#160;0x42</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga87fbc18bdfc214680a02d5a1d91c9e28">MSMMUX_CMD_BRAKE_BOTH</a>&#160;&#160;&#160;0x43</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#gaabb579aa54b2295b0b8edd49c2228efd">MSMMUX_CMD_RESET_MOT1</a>&#160;&#160;&#160;0x72</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga881a7eba2dff7e0263b23debd48dab33">MSMMUX_CMD_RESET_MOT2</a>&#160;&#160;&#160;0x73</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga0d86df0d411079268873cd4f536ab752">MSMMUX_STAT_SPEED_CTRL</a>&#160;&#160;&#160;(0x01 &lt;&lt; 0)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#gab9f7afb5cf501bed3383e2ccf2469edf">MSMMUX_STAT_RAMPING</a>&#160;&#160;&#160;(0x01 &lt;&lt; 1)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#gae1fa3f26640f9a0436827f47a0bec0da">MSMMUX_STAT_POWERED</a>&#160;&#160;&#160;(0x01 &lt;&lt; 2)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga12a4f2918dcc985de13de95680a95145">MSMMUX_STAT_POS_CTRL</a>&#160;&#160;&#160;(0x01 &lt;&lt; 3)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga0ee62d545b2e35a86d625899b8eede39">MSMMUX_STAT_BRAKED</a>&#160;&#160;&#160;(0x01 &lt;&lt; 4)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga4e5cf8d156b95e2e12e49fa9d04f51b2">MSMMUX_STAT_OVERLOADED</a>&#160;&#160;&#160;(0x01 &lt;&lt; 5)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#gada8938c940c32aa849a08b1977459d99">MSMMUX_STAT_TIMED</a>&#160;&#160;&#160;(0x01 &lt;&lt; 6)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga4098a638a442daf317587ca49542dfd9">MSMMUX_STAT_STALLED</a>&#160;&#160;&#160;(0x01 &lt;&lt; 7)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#gac26d3f74c8a080707ac5a440e609cbd5">MSMMUX_CMD_SPEED</a>&#160;&#160;&#160;0x01</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#gab7630e78e2d1aec87172c53ab852e5dd">MSMMUX_CMD_RAMP</a>&#160;&#160;&#160;0x02</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga6b41e450f882b087e0d473b530bad06a">MSMMUX_CMD_RELATIVE</a>&#160;&#160;&#160;0x04</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga445efda178d36ee108dcb4e7ba8871a6">MSMMUX_CMD_TACHO</a>&#160;&#160;&#160;0x08</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#gad80d4fd38ee9428cbae1fed2548b9118">MSMMUX_CMD_BRK</a>&#160;&#160;&#160;0x10</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga27b2bd96842711a3bf879ae8ebfb2cff">MSMMUX_CMD_HOLDPOS</a>&#160;&#160;&#160;0x20</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga5d99484e4fbfc3f4aa3ccfb18ee384cb">MSMMUX_CMD_TIME</a>&#160;&#160;&#160;0x40</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga54447c80943b69fca05e59963aeaede9">MSMMUX_CMD_GO</a>&#160;&#160;&#160;0x80</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga0d2f828e8c12510c8f5d1f794656bab0">MSMMUX_RAMP_NONE</a>&#160;&#160;&#160;0x00</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#gaaeea706af7bf946b39cd6edbaf1f0749">MSMMUX_RAMP_UP_DOWN</a>&#160;&#160;&#160;0x03</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga270e6656167e1373376d46f0e222d62a">MSMMUX_ROT_UNLIMITED</a>&#160;&#160;&#160;0x00</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga14a10807e91a25ad983d53e6bd7c4dce">MSMMUX_ROT_DEGREES</a>&#160;&#160;&#160;0x01</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#gad71ab84a3f95e79d10c4272107c7ba4b">MSMMUX_ROT_SECONDS</a>&#160;&#160;&#160;0x03</td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga70682f039e8bb97098baa6b1e2157693">MSMMUXinit</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga216466009d0c58c00d9bf9742493eaef">MSMMUXreadStatus</a> (<a class="el" href="group___m_m_u_x-common__h.html#ga11217de3dd0a7e4159c3578c1cdbba12">tMUXmotor</a> muxmotor, ubyte &amp;motorStatus)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga00149c5cea8e74fcc6dabb85d7ee7da6">MSMMUXsendCommand</a> (tSensors link, ubyte channel, long setpoint, byte speed, ubyte seconds, ubyte commandA, ubyte address=MSMMUX_I2C_ADDR)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga07e800b628b5f9a5fa6716671fb906ab">MSMMUXsendCommand</a> (tSensors link, ubyte command, ubyte address=MSMMUX_I2C_ADDR)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#gadfbbcac4655a147701f2731ed973e221">MSMMUXsetPID</a> (tSensors link, unsigned int kpTacho, unsigned int kiTacho, unsigned int kdTacho, unsigned int kpSpeed, unsigned int kiSpeed, unsigned int kdSpeed, ubyte passCount, ubyte tolerance, ubyte address=MSMMUX_I2C_ADDR)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga13f47f77e747922afe2434ce09710cf2">MSMMotor</a> (<a class="el" href="group___m_m_u_x-common__h.html#ga11217de3dd0a7e4159c3578c1cdbba12">tMUXmotor</a> muxmotor, byte power, ubyte address=MSMMUX_I2C_ADDR)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga5c6f609cbb6a314fd9b25fb8376590dd">MSMotorStop</a> (<a class="el" href="group___m_m_u_x-common__h.html#ga11217de3dd0a7e4159c3578c1cdbba12">tMUXmotor</a> muxmotor, ubyte address=MSMMUX_I2C_ADDR)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga7e618ec49817ea3d395cffbc0abdfd17">MSMotorStop</a> (<a class="el" href="group___m_m_u_x-common__h.html#ga11217de3dd0a7e4159c3578c1cdbba12">tMUXmotor</a> muxmotor, bool brake, ubyte address=MSMMUX_I2C_ADDR)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga544a5e40fddec79252217f48fa0d1fe5">MSMMotorSetRotationTarget</a> (<a class="el" href="group___m_m_u_x-common__h.html#ga11217de3dd0a7e4159c3578c1cdbba12">tMUXmotor</a> muxmotor, long <a class="el" href="group__htmc.html#ga39e0493ce40209f8833cc55adbeed48e">target</a>)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#gae7941b243681d858ee5e3bd49407a0ed">MSMMotorSetTimeTarget</a> (<a class="el" href="group___m_m_u_x-common__h.html#ga11217de3dd0a7e4159c3578c1cdbba12">tMUXmotor</a> muxmotor, int <a class="el" href="group__htmc.html#ga39e0493ce40209f8833cc55adbeed48e">target</a>)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga450ae85721b1540e3f799d3845a45ce8">MSMMotorSetEncoderTarget</a> (<a class="el" href="group___m_m_u_x-common__h.html#ga11217de3dd0a7e4159c3578c1cdbba12">tMUXmotor</a> muxmotor, long <a class="el" href="group__htmc.html#ga39e0493ce40209f8833cc55adbeed48e">target</a>)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga9c3a8a71c81dd7a02f9936d222e5427d">MSMMotorSetEncoderTarget</a> (<a class="el" href="group___m_m_u_x-common__h.html#ga11217de3dd0a7e4159c3578c1cdbba12">tMUXmotor</a> muxmotor, long <a class="el" href="group__htmc.html#ga39e0493ce40209f8833cc55adbeed48e">target</a>, bool relative)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga7b3fa7a33fc3e8ee6e2c9e8b10f7585d">MSMMotorEncoder</a> (<a class="el" href="group___m_m_u_x-common__h.html#ga11217de3dd0a7e4159c3578c1cdbba12">tMUXmotor</a> muxmotor, ubyte address=MSMMUX_I2C_ADDR)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga5a3a1592dbfe977c68b7abed26595040">MSMMotorEncoderReset</a> (<a class="el" href="group___m_m_u_x-common__h.html#ga11217de3dd0a7e4159c3578c1cdbba12">tMUXmotor</a> muxmotor, ubyte address=MSMMUX_I2C_ADDR)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#gadefafe924a76bce36240c7eb8fdbdf36">MSMMotorEncoderResetAll</a> (tSensors link, ubyte address=MSMMUX_I2C_ADDR)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga9f1fbe3a5ae946621e2316380c9881cf">MSMMotorBusy</a> (<a class="el" href="group___m_m_u_x-common__h.html#ga11217de3dd0a7e4159c3578c1cdbba12">tMUXmotor</a> muxmotor, ubyte address=MSMMUX_I2C_ADDR)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#gab9a66c248b3b369b26db9fd80f14b68c">MSMMotorStalled</a> (<a class="el" href="group___m_m_u_x-common__h.html#ga11217de3dd0a7e4159c3578c1cdbba12">tMUXmotor</a> muxmotor, ubyte address=MSMMUX_I2C_ADDR)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#gab74cc669bc4b1011e5ab6e36c8e5d0cb">MSMMotorSetBrake</a> (<a class="el" href="group___m_m_u_x-common__h.html#ga11217de3dd0a7e4159c3578c1cdbba12">tMUXmotor</a> muxmotor)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga118016629c8a58bec01143a437c2dfc6">MSMMotorSetFloat</a> (<a class="el" href="group___m_m_u_x-common__h.html#ga11217de3dd0a7e4159c3578c1cdbba12">tMUXmotor</a> muxmotor)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga0f61d2bd2faa6f654468c3bec21fc203">MSMMotorSetSpeedCtrl</a> (<a class="el" href="group___m_m_u_x-common__h.html#ga11217de3dd0a7e4159c3578c1cdbba12">tMUXmotor</a> muxmotor, bool constspeed)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga3415c02ea0ca9cf40c7585b8cb187a66">MSMMotorSetRamping</a> (<a class="el" href="group___m_m_u_x-common__h.html#ga11217de3dd0a7e4159c3578c1cdbba12">tMUXmotor</a> muxmotor, bool ramping)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga26a5dc9dd5985e6567390d390badd936">MSMMUXreadStatus</a> (<a class="el" href="group___m_m_u_x-common__h.html#ga11217de3dd0a7e4159c3578c1cdbba12">tMUXmotor</a> muxmotor, ubyte &amp;motorStatus, ubyte address)</td></tr>
<tr><td colspan="2"><h2><a name="var-members"></a>
Variables</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__common.html#gaa172ef131853460e5b9f5c6db81d30f4">tByteArray</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga2615cd4aad0f3cae15af8f3c817d6447">MSMMUX_I2CRequest</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__common.html#gaa172ef131853460e5b9f5c6db81d30f4">tByteArray</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__msmmux.html#ga2076a32842f8fffa2e42f3220c7db298">MSMMUX_I2CReply</a></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>NXT Motor MUX </p>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="ga0c726f775a3cd2d58bb52884974ae10a"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_CMD_A" ref="ga0c726f775a3cd2d58bb52884974ae10a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_CMD_A&#160;&#160;&#160;0x07</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Command A regiser </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00056">56</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga5befe114da7506da601ab2e1915d068d"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_CMD_B" ref="ga5befe114da7506da601ab2e1915d068d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_CMD_B&#160;&#160;&#160;0x06</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Command B register - for future use </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00055">55</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga87fbc18bdfc214680a02d5a1d91c9e28"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_CMD_BRAKE_BOTH" ref="ga87fbc18bdfc214680a02d5a1d91c9e28" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_CMD_BRAKE_BOTH&#160;&#160;&#160;0x43</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Stop both motors and brake </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00081">81</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga47a20b1c919909ae6a02143c9b38373e"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_CMD_BRAKE_MOT1" ref="ga47a20b1c919909ae6a02143c9b38373e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_CMD_BRAKE_MOT1&#160;&#160;&#160;0x41</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Stop motor 1 and brake </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00079">79</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga3504e787d507d9728c02204693fa6feb"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_CMD_BRAKE_MOT2" ref="ga3504e787d507d9728c02204693fa6feb" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_CMD_BRAKE_MOT2&#160;&#160;&#160;0x42</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Stop motor 2 and brake </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00080">80</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="gad80d4fd38ee9428cbae1fed2548b9118"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_CMD_BRK" ref="gad80d4fd38ee9428cbae1fed2548b9118" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_CMD_BRK&#160;&#160;&#160;0x10</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Whether to brake (1) or float (0) when motor has reached its target </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00100">100</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="gaf6be1bd3d07914c15eb391e03a1cb5f2"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_CMD_FLOAT_BOTH" ref="gaf6be1bd3d07914c15eb391e03a1cb5f2" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_CMD_FLOAT_BOTH&#160;&#160;&#160;0x63</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Stop both motors and allow to float </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00078">78</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga1d305482996467216a57a6ea423120fa"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_CMD_FLOAT_MOT1" ref="ga1d305482996467216a57a6ea423120fa" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_CMD_FLOAT_MOT1&#160;&#160;&#160;0x61</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Stop motor 1 and allow to float </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00076">76</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga73edefd7f959680dd295c60d4fefdf9c"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_CMD_FLOAT_MOT2" ref="ga73edefd7f959680dd295c60d4fefdf9c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_CMD_FLOAT_MOT2&#160;&#160;&#160;0x62</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Stop motor 2 and allow to float </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00077">77</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga54447c80943b69fca05e59963aeaede9"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_CMD_GO" ref="ga54447c80943b69fca05e59963aeaede9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_CMD_GO&#160;&#160;&#160;0x80</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Instruct the MUX to start the motors using the current registers </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00103">103</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga27b2bd96842711a3bf879ae8ebfb2cff"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_CMD_HOLDPOS" ref="ga27b2bd96842711a3bf879ae8ebfb2cff" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_CMD_HOLDPOS&#160;&#160;&#160;0x20</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Motor will hold position when this is enabled and push back when moved </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00101">101</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="gab7630e78e2d1aec87172c53ab852e5dd"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_CMD_RAMP" ref="gab7630e78e2d1aec87172c53ab852e5dd" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_CMD_RAMP&#160;&#160;&#160;0x02</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Ramp the speed up or down </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00097">97</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga6b41e450f882b087e0d473b530bad06a"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_CMD_RELATIVE" ref="ga6b41e450f882b087e0d473b530bad06a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_CMD_RELATIVE&#160;&#160;&#160;0x04</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Make encoder target relative to current position </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00098">98</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="gab8f60d07e59fd28326a70237f040b5f9"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_CMD_RESET_ALL" ref="gab8f60d07e59fd28326a70237f040b5f9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_CMD_RESET_ALL&#160;&#160;&#160;0x52</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Reset the tachos and motor values </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00074">74</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="gaabb579aa54b2295b0b8edd49c2228efd"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_CMD_RESET_MOT1" ref="gaabb579aa54b2295b0b8edd49c2228efd" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_CMD_RESET_MOT1&#160;&#160;&#160;0x72</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Reset the encoder count for motor 1 </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00082">82</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga881a7eba2dff7e0263b23debd48dab33"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_CMD_RESET_MOT2" ref="ga881a7eba2dff7e0263b23debd48dab33" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_CMD_RESET_MOT2&#160;&#160;&#160;0x73</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Reset the encoder count for motor 2 </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00083">83</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="gac26d3f74c8a080707ac5a440e609cbd5"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_CMD_SPEED" ref="gac26d3f74c8a080707ac5a440e609cbd5" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_CMD_SPEED&#160;&#160;&#160;0x01</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Speed control of your motor </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00096">96</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga97d0c3949df27605f6513dc97ea4a849"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_CMD_START_BOTH" ref="ga97d0c3949df27605f6513dc97ea4a849" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_CMD_START_BOTH&#160;&#160;&#160;0x53</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Start both motors with parameters in motor registers </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00075">75</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga445efda178d36ee108dcb4e7ba8871a6"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_CMD_TACHO" ref="ga445efda178d36ee108dcb4e7ba8871a6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_CMD_TACHO&#160;&#160;&#160;0x08</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Use the encoder target to control motor </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00099">99</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga5d99484e4fbfc3f4aa3ccfb18ee384cb"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_CMD_TIME" ref="ga5d99484e4fbfc3f4aa3ccfb18ee384cb" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_CMD_TIME&#160;&#160;&#160;0x40</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Use the time target to control the motor </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00102">102</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga3b917057a8f3ac8adf27bd90187b70fe"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_ENTRY_SIZE" ref="ga3b917057a8f3ac8adf27bd90187b70fe" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_ENTRY_SIZE&#160;&#160;&#160;0x08</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Number of registers per motor channel </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00057">57</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga2bbcbdd8012e4a24c5e4215523042a42"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_I2C_ADDR" ref="ga2bbcbdd8012e4a24c5e4215523042a42" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_I2C_ADDR&#160;&#160;&#160;0x06</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>MSMMUX I2C device address </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00046">46</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga5907ebc5382189cc9c06290a3b903fdb"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_KD_SPEED" ref="ga5907ebc5382189cc9c06290a3b903fdb" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_KD_SPEED&#160;&#160;&#160;0x84</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Kd for Speed Control </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00069">69</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga3ff39af77724326192176429074ceeff"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_KD_TACHO" ref="ga3ff39af77724326192176429074ceeff" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_KD_TACHO&#160;&#160;&#160;0x7E</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Kd for Tachometer Position Control </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00066">66</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga0cfed96ad8ef023bdaa88d7696b79f38"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_KI_SPEED" ref="ga0cfed96ad8ef023bdaa88d7696b79f38" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_KI_SPEED&#160;&#160;&#160;0x82</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Ki for Speed Control </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00068">68</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga5f9f34c18af41d95b0e78c5fb600bec5"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_KI_TACHO" ref="ga5f9f34c18af41d95b0e78c5fb600bec5" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_KI_TACHO&#160;&#160;&#160;0x7C</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Ki for Tachometer Position Control </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00065">65</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga688ad91d6a5f0ee13586e684e87ff694"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_KP_SPEED" ref="ga688ad91d6a5f0ee13586e684e87ff694" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_KP_SPEED&#160;&#160;&#160;0x80</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Kp for Speed Control </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00067">67</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga9be189f09f2e3f3416d7be23719df312"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_KP_TACHO" ref="ga9be189f09f2e3f3416d7be23719df312" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_KP_TACHO&#160;&#160;&#160;0x7A</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Kp for Tachometer Position Control </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00064">64</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga8c8b3af6beb087e1fd05d397b9b1ace5"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_MOT_OFFSET" ref="ga8c8b3af6beb087e1fd05d397b9b1ace5" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_MOT_OFFSET&#160;&#160;&#160;0x42</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Motor regiser offset </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00051">51</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga5094b753ed06a74097d1fc9d1abcbe9d"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_PASSCOUNT" ref="ga5094b753ed06a74097d1fc9d1abcbe9d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_PASSCOUNT&#160;&#160;&#160;0x86</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Encoder count tolerance when motor is moving </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00070">70</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga095db3c1ca34b9d4e0fe49afe8bbc29e"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_POWER" ref="ga095db3c1ca34b9d4e0fe49afe8bbc29e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_POWER&#160;&#160;&#160;0x04</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Motor power </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00053">53</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga0d2f828e8c12510c8f5d1f794656bab0"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_RAMP_NONE" ref="ga0d2f828e8c12510c8f5d1f794656bab0" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_RAMP_NONE&#160;&#160;&#160;0x00</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Use no ramping at all </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00105">105</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="gaaeea706af7bf946b39cd6edbaf1f0749"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_RAMP_UP_DOWN" ref="gaaeea706af7bf946b39cd6edbaf1f0749" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_RAMP_UP_DOWN&#160;&#160;&#160;0x03</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Use ramping to bring motor up to speed or to a halt </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00106">106</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="gae48d4cff2c8ccdb011fa7b3aab523adf"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_REG_CMD" ref="gae48d4cff2c8ccdb011fa7b3aab523adf" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_REG_CMD&#160;&#160;&#160;0x41</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Command register </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00049">49</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga14a10807e91a25ad983d53e6bd7c4dce"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_ROT_DEGREES" ref="ga14a10807e91a25ad983d53e6bd7c4dce" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_ROT_DEGREES&#160;&#160;&#160;0x01</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Use encoder target to control motor (ie rotate motor X number of degrees) </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00109">109</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="gad71ab84a3f95e79d10c4272107c7ba4b"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_ROT_SECONDS" ref="gad71ab84a3f95e79d10c4272107c7ba4b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_ROT_SECONDS&#160;&#160;&#160;0x03</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Use time target to control motor (ie run for X seconds) </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00111">111</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga270e6656167e1373376d46f0e222d62a"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_ROT_UNLIMITED" ref="ga270e6656167e1373376d46f0e222d62a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_ROT_UNLIMITED&#160;&#160;&#160;0x00</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Allow motor to rotate forever (or until batteries run out, of course) </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00108">108</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga0ee62d545b2e35a86d625899b8eede39"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_STAT_BRAKED" ref="ga0ee62d545b2e35a86d625899b8eede39" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_STAT_BRAKED&#160;&#160;&#160;(0x01 &lt;&lt; 4)</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Motor is braked. 0 means motor is floating </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00090">90</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga4e5cf8d156b95e2e12e49fa9d04f51b2"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_STAT_OVERLOADED" ref="ga4e5cf8d156b95e2e12e49fa9d04f51b2" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_STAT_OVERLOADED&#160;&#160;&#160;(0x01 &lt;&lt; 5)</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set to 1 when motor can't achieve desired speed </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00091">91</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga12a4f2918dcc985de13de95680a95145"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_STAT_POS_CTRL" ref="ga12a4f2918dcc985de13de95680a95145" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_STAT_POS_CTRL&#160;&#160;&#160;(0x01 &lt;&lt; 3)</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Motor is either moving towards target or holding position. </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00089">89</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="gae1fa3f26640f9a0436827f47a0bec0da"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_STAT_POWERED" ref="gae1fa3f26640f9a0436827f47a0bec0da" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_STAT_POWERED&#160;&#160;&#160;(0x01 &lt;&lt; 2)</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Motor is powered, does not imply movement </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00088">88</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="gab9f7afb5cf501bed3383e2ccf2469edf"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_STAT_RAMPING" ref="gab9f7afb5cf501bed3383e2ccf2469edf" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_STAT_RAMPING&#160;&#160;&#160;(0x01 &lt;&lt; 1)</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Motor is currently ramping up or down </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00087">87</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga0d86df0d411079268873cd4f536ab752"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_STAT_SPEED_CTRL" ref="ga0d86df0d411079268873cd4f536ab752" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_STAT_SPEED_CTRL&#160;&#160;&#160;(0x01 &lt;&lt; 0)</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Motor is programmed to move at a fixed speed. </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00086">86</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga4098a638a442daf317587ca49542dfd9"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_STAT_STALLED" ref="ga4098a638a442daf317587ca49542dfd9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_STAT_STALLED&#160;&#160;&#160;(0x01 &lt;&lt; 7)</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Motor is stalled </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00093">93</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="gada8938c940c32aa849a08b1977459d99"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_STAT_TIMED" ref="gada8938c940c32aa849a08b1977459d99" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_STAT_TIMED&#160;&#160;&#160;(0x01 &lt;&lt; 6)</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Motor is running for a specified duration </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00092">92</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="gab023b064da656ef35bdfb26a38c22a7f"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_STATUS_MOT1" ref="gab023b064da656ef35bdfb26a38c22a7f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_STATUS_MOT1&#160;&#160;&#160;0x72</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Status for motor 1 </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00060">60</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga86a9d90e1c78977bf3ee5583207cf52e"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_STATUS_MOT2" ref="ga86a9d90e1c78977bf3ee5583207cf52e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_STATUS_MOT2&#160;&#160;&#160;0x73</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Status for motor 2 </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00061">61</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="gab490c7c21096313940d1d677e1f15d2b"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_TACHO_MOT1" ref="gab490c7c21096313940d1d677e1f15d2b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_TACHO_MOT1&#160;&#160;&#160;0x62</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Tacho count for motor 1 </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00058">58</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga95108db52512c8783c4d75168a2fa5d6"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_TACHO_MOT2" ref="ga95108db52512c8783c4d75168a2fa5d6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_TACHO_MOT2&#160;&#160;&#160;0x66</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Tacho count for motor 2 </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00059">59</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="gac650c60ed1552bdddb6c614558f9e5d0"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_TARG_ENC" ref="gac650c60ed1552bdddb6c614558f9e5d0" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_TARG_ENC&#160;&#160;&#160;0x00</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Target encoder value </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00052">52</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="gabee839cd65db79708af3e59d6c59d8dd"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_TARG_TIME" ref="gabee839cd65db79708af3e59d6c59d8dd" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_TARG_TIME&#160;&#160;&#160;0x05</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Time target value </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00054">54</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="gad7ad488cba75aa97be2cc069cccf4bc9"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_TOLERANCE" ref="gad7ad488cba75aa97be2cc069cccf4bc9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MSMMUX_TOLERANCE&#160;&#160;&#160;0x87</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Encoder count tolerance when motor is getting close to target </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00071">71</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga13f47f77e747922afe2434ce09710cf2"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMotor" ref="ga13f47f77e747922afe2434ce09710cf2" args="(tMUXmotor muxmotor, byte power, ubyte address=MSMMUX_I2C_ADDR)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool MSMMotor </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___m_m_u_x-common__h.html#ga11217de3dd0a7e4159c3578c1cdbba12">tMUXmotor</a>&#160;</td>
          <td class="paramname"> <em>muxmotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">byte&#160;</td>
          <td class="paramname"> <em>power</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ubyte&#160;</td>
          <td class="paramname"> <em>address</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Run motor with specified speed.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">muxmotor</td><td>the motor-MUX motor </td></tr>
    <tr><td class="paramname">power</td><td>power the amount of power to apply to the motor, value between -100 and +100 </td></tr>
    <tr><td class="paramname">address</td><td>I2C address of the sensor (optional) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if no error occured, false if it did </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="mindsensors-motormux-test1_8c-example.html#a10">mindsensors-motormux-test1.c</a>, and <a class="el" href="mindsensors-motormux-test2_8c-example.html#a9">mindsensors-motormux-test2.c</a>.</dd>
</dl>
<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00299">299</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga9f1fbe3a5ae946621e2316380c9881cf"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMotorBusy" ref="ga9f1fbe3a5ae946621e2316380c9881cf" args="(tMUXmotor muxmotor, ubyte address=MSMMUX_I2C_ADDR)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool MSMMotorBusy </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___m_m_u_x-common__h.html#ga11217de3dd0a7e4159c3578c1cdbba12">tMUXmotor</a>&#160;</td>
          <td class="paramname"> <em>muxmotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ubyte&#160;</td>
          <td class="paramname"> <em>address</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Check if the specified motor is running or not.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">muxmotor</td><td>the motor-MUX motor </td></tr>
    <tr><td class="paramname">address</td><td>I2C address of the sensor (optional) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if the motor is still running, false if it's idle </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="mindsensors-motormux-test1_8c-example.html#a12">mindsensors-motormux-test1.c</a>.</dd>
</dl>
<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00479">479</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga7b3fa7a33fc3e8ee6e2c9e8b10f7585d"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMotorEncoder" ref="ga7b3fa7a33fc3e8ee6e2c9e8b10f7585d" args="(tMUXmotor muxmotor, ubyte address=MSMMUX_I2C_ADDR)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">long MSMMotorEncoder </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___m_m_u_x-common__h.html#ga11217de3dd0a7e4159c3578c1cdbba12">tMUXmotor</a>&#160;</td>
          <td class="paramname"> <em>muxmotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ubyte&#160;</td>
          <td class="paramname"> <em>address</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Fetch the current encoder value for specified motor channel</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">muxmotor</td><td>the motor-MUX motor </td></tr>
    <tr><td class="paramname">address</td><td>I2C address of the sensor (optional) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the current value of the encoder </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="mindsensors-motormux-test1_8c-example.html#a11">mindsensors-motormux-test1.c</a>, and <a class="el" href="mindsensors-motormux-test2_8c-example.html#a8">mindsensors-motormux-test2.c</a>.</dd>
</dl>
<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00415">415</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga5a3a1592dbfe977c68b7abed26595040"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMotorEncoderReset" ref="ga5a3a1592dbfe977c68b7abed26595040" args="(tMUXmotor muxmotor, ubyte address=MSMMUX_I2C_ADDR)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool MSMMotorEncoderReset </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___m_m_u_x-common__h.html#ga11217de3dd0a7e4159c3578c1cdbba12">tMUXmotor</a>&#160;</td>
          <td class="paramname"> <em>muxmotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ubyte&#160;</td>
          <td class="paramname"> <em>address</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Reset target encoder for specified motor channel, use only at the start of your program. If you are using the standard NXT wheels you will not run into problems with a wrap-around for the first 500kms or so.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">muxmotor</td><td>the motor-MUX motor </td></tr>
    <tr><td class="paramname">address</td><td>I2C address of the sensor (optional) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if no error occured, false if it did </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="mindsensors-motormux-test1_8c-example.html#a6">mindsensors-motormux-test1.c</a>.</dd>
</dl>
<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00448">448</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="gadefafe924a76bce36240c7eb8fdbdf36"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMotorEncoderResetAll" ref="gadefafe924a76bce36240c7eb8fdbdf36" args="(tSensors link, ubyte address=MSMMUX_I2C_ADDR)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool MSMMotorEncoderResetAll </td>
          <td>(</td>
          <td class="paramtype">tSensors&#160;</td>
          <td class="paramname"> <em>link</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ubyte&#160;</td>
          <td class="paramname"> <em>address</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Reset all encoders on the specified motor-MUX. Use only at the start of your program. If you are using the standard NXT wheels you will not run into problems with a wrap-around for the first 500kms or so.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">link</td><td>the MMUX port number </td></tr>
    <tr><td class="paramname">address</td><td>I2C address of the sensor (optional) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if no error occured, false if it did </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="mindsensors-motormux-test1_8c-example.html#a4">mindsensors-motormux-test1.c</a>, and <a class="el" href="mindsensors-motormux-test2_8c-example.html#a4">mindsensors-motormux-test2.c</a>.</dd>
</dl>
<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00467">467</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="gab74cc669bc4b1011e5ab6e36c8e5d0cb"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMotorSetBrake" ref="gab74cc669bc4b1011e5ab6e36c8e5d0cb" args="(tMUXmotor muxmotor)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void MSMMotorSetBrake </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___m_m_u_x-common__h.html#ga11217de3dd0a7e4159c3578c1cdbba12">tMUXmotor</a>&#160;</td>
          <td class="paramname"> <em>muxmotor</em>&#160;)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set the stopping method for the specified motor to brake.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">muxmotor</td><td>the motor-MUX motor </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="mindsensors-motormux-test1_8c-example.html#a7">mindsensors-motormux-test1.c</a>.</dd>
</dl>
<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00534">534</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga450ae85721b1540e3f799d3845a45ce8"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMotorSetEncoderTarget" ref="ga450ae85721b1540e3f799d3845a45ce8" args="(tMUXmotor muxmotor, long target)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void MSMMotorSetEncoderTarget </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___m_m_u_x-common__h.html#ga11217de3dd0a7e4159c3578c1cdbba12">tMUXmotor</a>&#160;</td>
          <td class="paramname"> <em>muxmotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"> <em>target</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set encoder target for specified mux motor. Target is relative to current position.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">muxmotor</td><td>the motor-MUX motor </td></tr>
    <tr><td class="paramname">target</td><td>the encoder target value in degrees. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if no error occured, false if it did </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="mindsensors-motormux-test1_8c-example.html#a8">mindsensors-motormux-test1.c</a>.</dd>
</dl>
<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00386">386</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga9c3a8a71c81dd7a02f9936d222e5427d"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMotorSetEncoderTarget" ref="ga9c3a8a71c81dd7a02f9936d222e5427d" args="(tMUXmotor muxmotor, long target, bool relative)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void MSMMotorSetEncoderTarget </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___m_m_u_x-common__h.html#ga11217de3dd0a7e4159c3578c1cdbba12">tMUXmotor</a>&#160;</td>
          <td class="paramname"> <em>muxmotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"> <em>target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"> <em>relative</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set encoder target for specified mux motor.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">muxmotor</td><td>the motor-MUX motor </td></tr>
    <tr><td class="paramname">target</td><td>the encoder target value in degrees. </td></tr>
    <tr><td class="paramname">relative</td><td>specified target is relative to current position. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if no error occured, false if it did </dd></dl>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00401">401</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga118016629c8a58bec01143a437c2dfc6"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMotorSetFloat" ref="ga118016629c8a58bec01143a437c2dfc6" args="(tMUXmotor muxmotor)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void MSMMotorSetFloat </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___m_m_u_x-common__h.html#ga11217de3dd0a7e4159c3578c1cdbba12">tMUXmotor</a>&#160;</td>
          <td class="paramname"> <em>muxmotor</em>&#160;)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set the stopping method for the specified motor to float.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">muxmotor</td><td>the motor-MUX motor </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00544">544</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga3415c02ea0ca9cf40c7585b8cb187a66"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMotorSetRamping" ref="ga3415c02ea0ca9cf40c7585b8cb187a66" args="(tMUXmotor muxmotor, bool ramping)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void MSMMotorSetRamping </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___m_m_u_x-common__h.html#ga11217de3dd0a7e4159c3578c1cdbba12">tMUXmotor</a>&#160;</td>
          <td class="paramname"> <em>muxmotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"> <em>ramping</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set the ramping control for the specified motor.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">muxmotor</td><td>the motor-MUX motor </td></tr>
    <tr><td class="paramname">ramping</td><td>use ramping for starting and stopping the motor </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00566">566</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga544a5e40fddec79252217f48fa0d1fe5"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMotorSetRotationTarget" ref="ga544a5e40fddec79252217f48fa0d1fe5" args="(tMUXmotor muxmotor, long target)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void MSMMotorSetRotationTarget </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___m_m_u_x-common__h.html#ga11217de3dd0a7e4159c3578c1cdbba12">tMUXmotor</a>&#160;</td>
          <td class="paramname"> <em>muxmotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"> <em>target</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set rotation target for specified mux motor.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">muxmotor</td><td>the motor-MUX motor </td></tr>
    <tr><td class="paramname">target</td><td>the rotation target value </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if no error occured, false if it did </dd></dl>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00359">359</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga0f61d2bd2faa6f654468c3bec21fc203"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMotorSetSpeedCtrl" ref="ga0f61d2bd2faa6f654468c3bec21fc203" args="(tMUXmotor muxmotor, bool constspeed)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void MSMMotorSetSpeedCtrl </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___m_m_u_x-common__h.html#ga11217de3dd0a7e4159c3578c1cdbba12">tMUXmotor</a>&#160;</td>
          <td class="paramname"> <em>muxmotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"> <em>constspeed</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set the motor speed control for the specified motor.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">muxmotor</td><td>the motor-MUX motor </td></tr>
    <tr><td class="paramname">constspeed</td><td>use speed control to ensure motor speed stays constant under varying load </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00555">555</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="gae7941b243681d858ee5e3bd49407a0ed"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMotorSetTimeTarget" ref="gae7941b243681d858ee5e3bd49407a0ed" args="(tMUXmotor muxmotor, int target)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void MSMMotorSetTimeTarget </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___m_m_u_x-common__h.html#ga11217de3dd0a7e4159c3578c1cdbba12">tMUXmotor</a>&#160;</td>
          <td class="paramname"> <em>muxmotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"> <em>target</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Set time target for specified mux motor. Seconds can be specified in increments of 1 second with an upper limit of 255 seconds.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">muxmotor</td><td>the motor-MUX motor </td></tr>
    <tr><td class="paramname">target</td><td>the time target value in seconds [1-255] </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if no error occured, false if it did </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="mindsensors-motormux-test1_8c-example.html#a9">mindsensors-motormux-test1.c</a>.</dd>
</dl>
<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00373">373</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="gab9a66c248b3b369b26db9fd80f14b68c"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMotorStalled" ref="gab9a66c248b3b369b26db9fd80f14b68c" args="(tMUXmotor muxmotor, ubyte address=MSMMUX_I2C_ADDR)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool MSMMotorStalled </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___m_m_u_x-common__h.html#ga11217de3dd0a7e4159c3578c1cdbba12">tMUXmotor</a>&#160;</td>
          <td class="paramname"> <em>muxmotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ubyte&#160;</td>
          <td class="paramname"> <em>address</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Check if the specified motor is running or not.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">muxmotor</td><td>the motor-MUX motor </td></tr>
    <tr><td class="paramname">address</td><td>I2C address of the sensor (optional) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if the motor is still running, false if it's idle </dd></dl>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00520">520</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga70682f039e8bb97098baa6b1e2157693"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUXinit" ref="ga70682f039e8bb97098baa6b1e2157693" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void MSMMUXinit </td>
          <td>(</td>
          <td class="paramname">&#160;)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="mindsensors-motormux-test1_8c-example.html#a0">mindsensors-motormux-test1.c</a>, and <a class="el" href="mindsensors-motormux-test2_8c-example.html#a0">mindsensors-motormux-test2.c</a>.</dd>
</dl>
<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00145">145</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga216466009d0c58c00d9bf9742493eaef"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUXreadStatus" ref="ga216466009d0c58c00d9bf9742493eaef" args="(tMUXmotor muxmotor, ubyte &amp;motorStatus)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool MSMMUXreadStatus </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___m_m_u_x-common__h.html#ga11217de3dd0a7e4159c3578c1cdbba12">tMUXmotor</a>&#160;</td>
          <td class="paramname"> <em>muxmotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ubyte &amp;&#160;</td>
          <td class="paramname"> <em>motorStatus</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ga26a5dc9dd5985e6567390d390badd936"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUXreadStatus" ref="ga26a5dc9dd5985e6567390d390badd936" args="(tMUXmotor muxmotor, ubyte &amp;motorStatus, ubyte address)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool MSMMUXreadStatus </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___m_m_u_x-common__h.html#ga11217de3dd0a7e4159c3578c1cdbba12">tMUXmotor</a>&#160;</td>
          <td class="paramname"> <em>muxmotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ubyte &amp;&#160;</td>
          <td class="paramname"> <em>motorStatus</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ubyte&#160;</td>
          <td class="paramname"> <em>address</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Read the status byte of the specified motor</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">muxmotor</td><td>the motor-MUX motor </td></tr>
    <tr><td class="paramname">motorStatus</td><td>status of the motor </td></tr>
    <tr><td class="paramname">address</td><td>I2C address of the sensor (optional) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if no error occured, false if it did </dd></dl>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00166">166</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga07e800b628b5f9a5fa6716671fb906ab"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUXsendCommand" ref="ga07e800b628b5f9a5fa6716671fb906ab" args="(tSensors link, ubyte command, ubyte address=MSMMUX_I2C_ADDR)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool MSMMUXsendCommand </td>
          <td>(</td>
          <td class="paramtype">tSensors&#160;</td>
          <td class="paramname"> <em>link</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ubyte&#160;</td>
          <td class="paramname"> <em>command</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ubyte&#160;</td>
          <td class="paramname"> <em>address</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Send a command to the MMUX.</p>
<p>Note: this is an internal function and shouldn't be used directly </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">link</td><td>the MMUX port number </td></tr>
    <tr><td class="paramname">command</td><td>the command to be sent to the motor </td></tr>
    <tr><td class="paramname">address</td><td>I2C address of the sensor (optional) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if no error occured, false if it did </dd></dl>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00233">233</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga00149c5cea8e74fcc6dabb85d7ee7da6"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUXsendCommand" ref="ga00149c5cea8e74fcc6dabb85d7ee7da6" args="(tSensors link, ubyte channel, long setpoint, byte speed, ubyte seconds, ubyte commandA, ubyte address=MSMMUX_I2C_ADDR)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool MSMMUXsendCommand </td>
          <td>(</td>
          <td class="paramtype">tSensors&#160;</td>
          <td class="paramname"> <em>link</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ubyte&#160;</td>
          <td class="paramname"> <em>channel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"> <em>setpoint</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">byte&#160;</td>
          <td class="paramname"> <em>speed</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ubyte&#160;</td>
          <td class="paramname"> <em>seconds</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ubyte&#160;</td>
          <td class="paramname"> <em>commandA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ubyte&#160;</td>
          <td class="paramname"> <em>address</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Send a command to the MMUX.</p>
<p>Note: this is an internal function and shouldn't be used directly </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">link</td><td>the MMUX port number </td></tr>
    <tr><td class="paramname">channel</td><td>the channel the command should apply to </td></tr>
    <tr><td class="paramname">setpoint</td><td>the encoder count the motor should move to </td></tr>
    <tr><td class="paramname">speed</td><td>the speed the motor should move at </td></tr>
    <tr><td class="paramname">seconds</td><td>the number of seconds the motor should run for. Note that this takes precedence over the encoder target </td></tr>
    <tr><td class="paramname">commandA</td><td>the command to be sent to the motor </td></tr>
    <tr><td class="paramname">address</td><td>I2C address of the sensor (optional) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if no error occured, false if it did </dd></dl>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00200">200</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="gadfbbcac4655a147701f2731ed973e221"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUXsetPID" ref="gadfbbcac4655a147701f2731ed973e221" args="(tSensors link, unsigned int kpTacho, unsigned int kiTacho, unsigned int kdTacho, unsigned int kpSpeed, unsigned int kiSpeed, unsigned int kdSpeed, ubyte passCount, ubyte tolerance, ubyte address=MSMMUX_I2C_ADDR)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool MSMMUXsetPID </td>
          <td>(</td>
          <td class="paramtype">tSensors&#160;</td>
          <td class="paramname"> <em>link</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"> <em>kpTacho</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"> <em>kiTacho</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"> <em>kdTacho</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"> <em>kpSpeed</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"> <em>kiSpeed</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"> <em>kdSpeed</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ubyte&#160;</td>
          <td class="paramname"> <em>passCount</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ubyte&#160;</td>
          <td class="paramname"> <em>tolerance</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ubyte&#160;</td>
          <td class="paramname"> <em>address</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Configure the internal PID controller. Tweaking these values will change the behaviour of the motors, how they approach their target, how they maintain speed, etc. These settings do not persist, disconnecting the MUX will reset these values to their defaults. These settings are MUX-wide, so will apply to how BOTH motors are controlled.</p>
<p>Please refer to the User Guide for more detailed information on how these parameters should be used.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">link</td><td>the MMUX port number </td></tr>
    <tr><td class="paramname">kpTacho</td><td>Kp for Tachometer Position Control </td></tr>
    <tr><td class="paramname">kiTacho</td><td>Ki for Tachometer Position Control </td></tr>
    <tr><td class="paramname">kdTacho</td><td>Kd for Tachometer Position Control </td></tr>
    <tr><td class="paramname">kpSpeed</td><td>Kp for Speed Control </td></tr>
    <tr><td class="paramname">kiSpeed</td><td>Ki for Speed Control </td></tr>
    <tr><td class="paramname">kdSpeed</td><td>Kd for Speed Control </td></tr>
    <tr><td class="paramname">passCount</td><td>Encoder count tolerance when motor is moving </td></tr>
    <tr><td class="paramname">tolerance</td><td>Encoder count tolerance when motor is getting close to target </td></tr>
    <tr><td class="paramname">address</td><td>I2C address of the sensor (optional) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if no error occured, false if it did </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="mindsensors-motormux-test1_8c-example.html#a5">mindsensors-motormux-test1.c</a>.</dd>
</dl>
<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00266">266</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga5c6f609cbb6a314fd9b25fb8376590dd"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMotorStop" ref="ga5c6f609cbb6a314fd9b25fb8376590dd" args="(tMUXmotor muxmotor, ubyte address=MSMMUX_I2C_ADDR)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool MSMotorStop </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___m_m_u_x-common__h.html#ga11217de3dd0a7e4159c3578c1cdbba12">tMUXmotor</a>&#160;</td>
          <td class="paramname"> <em>muxmotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ubyte&#160;</td>
          <td class="paramname"> <em>address</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Stop the motor. Uses the brake method specified with MSMMotorSetBrake or MSMMotorSetFloat. The default is to use braking.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">muxmotor</td><td>the motor-MUX motor </td></tr>
    <tr><td class="paramname">address</td><td>I2C address of the sensor (optional) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if no error occured, false if it did </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="mindsensors-motormux-test1_8c-example.html#a1">mindsensors-motormux-test1.c</a>, and <a class="el" href="mindsensors-motormux-test2_8c-example.html#a1">mindsensors-motormux-test2.c</a>.</dd>
</dl>
<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00326">326</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga7e618ec49817ea3d395cffbc0abdfd17"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMotorStop" ref="ga7e618ec49817ea3d395cffbc0abdfd17" args="(tMUXmotor muxmotor, bool brake, ubyte address=MSMMUX_I2C_ADDR)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool MSMotorStop </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group___m_m_u_x-common__h.html#ga11217de3dd0a7e4159c3578c1cdbba12">tMUXmotor</a>&#160;</td>
          <td class="paramname"> <em>muxmotor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"> <em>brake</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ubyte&#160;</td>
          <td class="paramname"> <em>address</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Stop the motor. This function overrides the preconfigured braking method.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">muxmotor</td><td>the motor-MUX motor </td></tr>
    <tr><td class="paramname">brake</td><td>when set to true: use brake, false: use float </td></tr>
    <tr><td class="paramname">address</td><td>I2C address of the sensor (optional) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if no error occured, false if it did </dd></dl>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00343">343</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<hr/><h2>Variable Documentation</h2>
<a class="anchor" id="ga2076a32842f8fffa2e42f3220c7db298"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_I2CReply" ref="ga2076a32842f8fffa2e42f3220c7db298" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__common.html#gaa172ef131853460e5b9f5c6db81d30f4">tByteArray</a> <a class="el" href="group__msmmux.html#ga2076a32842f8fffa2e42f3220c7db298">MSMMUX_I2CReply</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Array to hold I2C reply data </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00115">115</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga2615cd4aad0f3cae15af8f3c817d6447"></a><!-- doxytag: member="mindsensors&#45;motormux.h::MSMMUX_I2CRequest" ref="ga2615cd4aad0f3cae15af8f3c817d6447" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__common.html#gaa172ef131853460e5b9f5c6db81d30f4">tByteArray</a> <a class="el" href="group__msmmux.html#ga2615cd4aad0f3cae15af8f3c817d6447">MSMMUX_I2CRequest</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Array to hold I2C command data </p>

<p>Definition at line <a class="el" href="mindsensors-motormux_8h_source.html#l00114">114</a> of file <a class="el" href="mindsensors-motormux_8h_source.html">mindsensors-motormux.h</a>.</p>

</div>
</div>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Wed Mar 13 2013 19:56:44 for ROBOTC Drivers by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
</body>
</html>
